Method And System For Dynamic Routing And/Or Switching In A Network

ABSTRACT

Communication devices may determine routes for packets based on packet marking, routing parameters and/or costs associated with routes. A route may be selected and the packets may be communicated via the selected route. The parameters may comprise service class, real time compression, packet preemption, quality measurements, tier bypass and/or power usage information. The costs may comprise capacity, efficiency and/or performance information for power usage, bandwidth, memory and/or processing. The marking may comprise traffic type, user device capabilities, service class, quality measurements, latency requirements and/or power usage information. Endpoint devices, software applications and/or service providers may insert the marking into packets. Routes may be determined and/or selected based on shortest path bridging, audio video bridging, the marking, the routing parameters and/or the costs. Parameters and/or costs may be received and/or discovered from communication devices. Packets and/or the marking may be parsed and/or inspected. Costs may be based on routing parameters.

PRIORITY CLAIM

This application is a continuation of U.S. patent application Ser. No.12/571,165, filed Sep. 30, 2009, pending, and claims priority toprovisional application Ser. No. 61/228,404, filed Jul. 24, 2009, whichare entirely incorporated by reference.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is related to the following:

U.S. patent application Ser. No. 11/963,017, which was filed on Dec. 21,2007;

U.S. patent application Ser. No. 11/963,087, which was filed on Dec. 21,2007;

U.S. Provisional Patent Application Ser. No. 61/228,309, which was filedon Jul. 24, 2009, and U.S. patent application Ser. No. 12/581,741, whichwas filed on Oct. 19, 2009;

U.S. Provisional Patent Application Ser. No. 61/228,368, which was filedon Jul. 24, 2009, and U.S. patent application Ser. No. 12/604,968 whichwas filed on Oct. 23, 2009; and

U.S. Provisional Patent Application Ser. No. 61/228,339, which was filedon Jul. 24, 2009, and U.S. patent application Ser. No. 12/571,147, whichwas filed on Sep. 30, 2009.

Each of the above stated applications is hereby incorporated herein byreference in its entirety.

TECHNICAL FIELD

Certain embodiments of the invention relate to communication systems.More specifically, certain embodiments of the invention relate todynamic routing and/or switching in a network.

BACKGROUND

The growth of networking and systems' connectivity are some of the majordevelopments in recent decades. Fewer and fewer systems and devices areoperated as stand-alone entities, and most of today's systems areincreasingly becoming elements in complex networks. This growth innetworking allows improved performance and increased flexibility. Forexample, communication devices such as personal computers (PCs)including laptops, printers, routers, switches, voice communicationdevices, video and/or audio devices, gaming devices and other devices,are connected together as nodes in communication networks. Networks aredesignated in a variety of ways, and based on a variety of factors.Network designation may be spatial, based on the scope of connectivityamong the network nodes. For example, a network may be designated as apersonal area network (PAN), a local area network (LAN), and wide areanetwork (WAN). Network designation may also be based on the backboneconnecting technology. For example, a network may be designated as anEthernet network, a wireless network, and/or a fiber optical network.Some networks are circuit switched and are built around dedicatednode-to-node connectivity, wherein a dedicated circuit is created andreserved, when needed, between the communicating nodes. Other nodes arethen barred from utilizing the same connection and/or other entities inthe network to the extent necessary to maintain the circuit. Mostnetworks in use nowadays, however, are based on packet switchednetworks. In packet switched networks, the sending node simply transmitstraffic that is destined for one or more receiving nodes. The trafficcomprises packets that contain, in addition to data, other informationthat enables directing the packets to the receiving nodes. For example,most of today's networks are Internet based network and utilizes variousprotocols comprising TCP/IP, for example, to facilitate packetswitching. In this regard, data is encapsulated into packets thatcomprise a header portion and a payload portion to enable transporting,addressing and/or routing among various entities within or coupled tothe network.

Network switching devices, comprising such devices as switches, routersand/or hubs, are utilized in networks to facilitate forwarding oftraffic between sending and receiving nodes. Hubs contain multipleports, wherein packets arriving at one port are transmitted via allremaining ports. Consequently, hubs are generally operable to performminimal processing. Routers and/or switches also comprise multipleports, but unlike hubs, switches are more actively functional inperforming routing operations. For example, routers and/or switchesmaintain routing information that enable routers and/or the switches toexamine received packets and process them accordingly to determinewhether the packets are transmitted via the router and/or switch, and ifso, to determine the appropriate ports to perform that transmission.Routers and/or switches may store, generate, and/or maintain addressingrelated information of accessible network nodes.

Some network routers and/or switches, however, may block traffic.Blocking occurs when a router and/or switch reaches a point where it isunable to perform additional switching even though it has not reachedits theoretical maximum throughput, which generally is based on thecombined maximum speeds of all of its ports.

Further limitations and disadvantages of conventional and traditionalapproaches will become apparent to one of skill in the art, throughcomparison of such systems with the present invention as set forth inthe remainder of the present application with reference to the drawings.

BRIEF SUMMARY

A system and/or method for dynamic routing and/or switching in anetwork, substantially as shown in and/or described in connection withat least one of the figures, as set forth more completely in the claims.

Various advantages, aspects and novel features of the present invention,as well as details of an illustrated embodiment thereof, will be morefully understood from the following description and drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram that illustrates an exemplary device that isoperable to dynamically route and/or switch data, in accordance with anembodiment of the invention.

FIG. 2 is a block diagram illustrating an exemplary plurality ofcommunication devices that are enabled to route data based on one ormore of routing parameters, costs associated with a device and/or datamark and/or tag information, in accordance with an embodiment of theinvention.

FIG. 3A is a block diagram illustrating an exemplary packet comprisingan OSI L2 mark, in accordance with an embodiment of the invention.

FIG. 3B is a block diagram illustrating an exemplary packet comprisingan OSI Ethertype mark, in accordance with an embodiment of theinvention.

FIG. 3C is a block diagram illustrating an exemplary packet comprisingan IP mark, in accordance with an embodiment of the invention.

FIG. 4 is a block diagram illustrating an exemplary data delivery routecomprising endpoint devices and a plurality of network nodes which maybe determined based on routing parameters, costs associated with adevice and/or marked and/or tagged packet data, in accordance with anembodiment of the invention.

FIG. 5 is a flow chart illustrating exemplary steps for routing databased on one or more of routing parameters, costs associated with adevice and/or data marking and/or tag information, in accordance with anembodiment of the invention.

DETAILED DESCRIPTION

Certain embodiments of the invention can be found in a method and systemfor dynamic routing and/or switching in a network. In variousembodiments of the invention, one or more processors and/or circuits inone or more of a plurality of communication devices may determine one ormore routes over which packets may be communicated. The packets may becommunicated between a first communication device of the plurality ofcommunication devices and a second communication device of the pluralityof communication devices. Furthermore, the packets may be communicatedbased on one or more of corresponding markings within the packets,routing parameters and/or costs that may be associated with utilizingthe determined routes. At least one determined route may be selected forcommunicating the packets between the first communication device and thesecond communication device, and the packets may be communicated via theat least one selected route.

The routing parameters may comprise information for one or more ofservice class capabilities, real time compression capabilities, packetpreemption capabilities, quality measurement capabilities, tier bypasscapabilities and power usage, for example. The one or more costs maycomprise information for one or more of capacity, efficiency and/orperformance of one or more of power usage, bandwidth, memory andprocessing, for example. Moreover, the one or more correspondingmarkings may comprise information for one or more of user devicecapabilities, service class, quality measurements, latency requirementsand power usage requirements, for example. The corresponding markingsmay be inserted within the packets by one or more of an endpoint device,a software application, a content provider, a consumer, an enterpriseand/or a service provider. The markings may comprise a mark, a tagand/or bits embedded in a packet, for example.

One or more routes over which the packets may be communicated may bedetermined and/or selected based on one or more of shortest pathbridging and audio video bridging. Additionally, one or more routes overwhich the packets may be communicated may be selected based on the oneor more corresponding markings within the packets, the routingparameters and/or the costs. The routing parameters and/or the costs maybe received and/or discovered from the plurality of communicationdevices. The packets and/or the corresponding markings may be parsedand/or inspected. One or more costs may be based on one or more of therouting parameters. In this manner, routing of packet data via one ormore network nodes may be based on markings within the data, routingparameters and/or costs associated with the network nodes.

FIG. 1 is a block diagram that illustrates an exemplary device that isoperable to dynamically route and/or switch data, in accordance with anembodiment of the invention. Referring to FIG. 1, there is shown acommunication device 101, a processor 123, a memory 121, a control plane103, routing protocols 105, a routing table 107, a forwarding table 115and a routing and/or switching circuitry 117.

The communication device 101 comprises suitable logic, circuitry,interfaces and/or code that may be operable to route packets and/or toforward data received from one communication device to anothercommunication device. In this regard, the communication device 101 maybe a network node and/or an endpoint device. Routing operations withinthe communication device 101 may be performed based on one or morenetworking layers, for example, based on the Open SystemsInterconnection (OSI) model. In various embodiments of the invention,the communication devices 101 may be operable to perform OSI L2, L3and/or L4 operations. Furthermore, the communication device 101 may beoperable to utilize information embedded within data that may be pendingdelivery to another communication device. The embedded information mayindicate a preferred method to handle and/or route the data, and/orrequirements for optimal communication of the data. For example, a datapacket may comprise a mark and/or a tag that may indicate a serviceclass and/or latency requirements associated with the data. Moreover,when making routing decisions, the communication device 101 may beoperable to utilize a plurality of routing parameters and/or costsassociated with one or more communication devices that may be candidatesfor routing the data through a network, for example. The communicationdevice 101 may be implemented on a single chip, using a chipset, on asingle device and/or a plurality of devices, for example.

The control plane 103 may comprise suitable logic, circuitry, interfacesand/or code that may be operable to determine how the communicationdevice 101 will handle packets that are received and forwarded. Thecontrol plane 103 may be operable to determine that a packet may bediscarded or that a packet may receive a specified quality of service.The control plane 103 comprises routing protocols 105 that may specifyhow the communication device 101 communicates with other communicationdevices and/or how routes are selected, for example. In addition, therouting protocol 105 may determine how a routing table is constructed.Exemplary routing protocols 105 comprise interior gateway routingprotocol (IGRP), open shortest path first (OSPF), routing informationprotocol (RIP) and intermediate system to intermediate system (IS-IS).The control plane 103 may also comprise the routing table 107 that maycomprise routes to particular network destinations.

The control plane 103 may be operable to implement shortest pathbridging (SPB) and/or audio video bridging (AVB), for example. In thisregard, the communication device 101 may be operable to route packetdata based on a desired path cost and/or a desired quality of service(QoS). For example, the communication device 101 may be operable toroute data via a least cost path and/or a shortest path wherein the pathutilized for routing the data may be AVB enabled. Furthermore, thecommunication device 101 may be operable to monitor other network nodeswhich may be AVB enabled and may be operable to establish a route viaAVB enabled network nodes. U.S. patent application Ser. No. 11/963,017,which was filed on Dec. 21, 2007 and U.S. patent application Ser. No.11/963,087, which was filed on Dec. 21, 2007 discloses SPB and/or AVBrouting protocol, and are each hereby incorporated herein by referencein its entirety.

The control plane 103 may be operable to utilize one or more routingparameters when determining routes and/or handling packet data. Forexample, parameters may enable packet preemption, quality measurementsand/or reporting of quality measurements, tier bypass and/or powerand/or resource efficiency. Various routing parameters are describedwith respect to FIG. 2.

The control plane 103 may be operable to route packets and/or configurecircuitry according to information that may be parsed from the packets.For example, the packets may comprise one or more marks and/or tags thatmay indicate how to process and/or how to route the packets. The markand/or tag information may indicate that one or more packets may havehigher priority over other packets that may be pending delivery. Forexample, packets requiring low latency may be handled differently thanother packets. In this regard, capabilities of a user device and/or anapplication that may be a source of the packet and/or a destination ofthe packet may be specified in a mark and/or tag. The mark and/or tagmay specify that data pending delivery may comprise voice over IP dataand/or multi-party interactive Internet gaming data as an indication ofhow to handle and/or route the data, for example. Furthermore, a markand/or tag may indicate that data routed for a particular user may behandled and/or routed according to a specified service class. Variousexemplary marks and/or tags are described with respect to FIG. 2.

The control plane 103 may also be operable to route data based on one ormore costs associated with communication devices that may be candidatesfor a packet delivery route. The costs may comprise factors such as oneor more of power usage, bandwidth availability, memory availability,processing capabilities, energy efficiency, shortest path bridgingavailability and/or audio video bridging availability.

The control plane 103 may comprise suitable logic, circuitry, interfacesand/or code that may be operable to accept a packet arriving on aningress link, look up a destination address for the packet and determinean internal path through the routing and/or switching circuitry 117 thatwill direct the packet outward via a proper egress link. The controlplane 103 may be operable to encapsulate egress packets and set variouspacket fields. For example, the control plane 103 may modify a field forquality of service and/or quality measurements or may decrement atime-to-live field in the packet and may discard the packet if thetime-to-live equals zero. The control plane 103 may update a check sum.

The routing and/or switching circuitry 117 may comprise suitable logic,circuitry, interfaces and/or code that may be operable to direct packetsreceived from a plurality of ingress links to one or more egress links.The routing and/or switching circuitry 117 may comprise, for example,input queuing and output queuing. In addition, the routing and/orswitching circuitry 117 may comprise a subsystem which may comprisesuitable logic, circuitry, interfaces, and/or code that may enableexchange of data and/or messaging via a plurality of physicalinterconnects.

The memory 121 may comprise suitable logic, circuitry, interfaces and/orcode that may be operable to store instructions and/or parameters thatenable functionality described with respect to the control plane 103.For example, the memory 121 may be operable to store routing parameters,costs associated with one or more communication devices and/or markeddata from packets pending delivery. The memory 121 may be operable tostore packet data that may be received and/or forwarded by thecommunication device 101. Moreover, the memory 121 may store the routingtable 107. The routing table 107 may comprise routing information thatmay be sent to the forwarding table 115 in the control plane 103. Therouting information may comprise preferred routes chosen by a routingalgorithm according to various routing parameters, costs, data markinginformation for forwarding packets. The memory 121 may becommunicatively coupled to the processor 123 and/or the routing and/orswitching circuitry 117.

The processor 123 may comprise suitable logic, circuitry, interfacesand/or code that may be operable to execute instructions and/or utilizeparameters that may enable functionality described with respect to thecontrol plane 103. The processor 123 may be communicatively coupled tothe memory 121 and/or the routing and/or switching circuitry 117. Theprocessor 123 may manage the communication of packets based on therouting protocols 105. In addition, the processor 123 may receiveinformation from other routers and/or other communication devices andmay utilize the received information to construct the routing table 115.The processor 123 may be operable to receive and/or utilize informationbased on routing parameters and/or costs of one or more other networknodes when making routing decisions. For example, information regardingsupport by the other one or more network nodes for specified user deviceand/or application data types, various user service classes, packetpreemption, quality measurements and/or reporting of qualitymeasurements, tier bypass and/or power and/or resource efficiency.

In operation, the communication device 101 may be utilized to performnetwork operations. The communication device 101 may be utilized, forexample, in a local area network (LAN), to enable transfer of trafficpackets between network nodes in the LAN. For example, where receivedtraffic packets are TCP/IP traffic packets, the IP headers may be parsedto determine the source and/or destination addressing information forthe received traffic packets. Once the destination nodes are determined,based on routing tables maintained in the memory 121 for example, thepackets may be transmitted via the control plane 103.

The communication device 101 may be operable, for example, to maintainrouting information that may enable mapping of a set of destinationaddresses corresponding to various network nodes, to a plurality ofegress links in the communication device 101. The routing informationmay be stored, generated, and/or maintained by the processor 123 of thecommunication device 101, for example. Once the appropriate egress linksare determined for a received packet, the routing and/or switchingcircuitry 117 may be utilized to transfer the packet to the appropriateegress links.

In some communication devices, for example, hardware, software and/orlogic limitations in the communication device 101 may result in‘blocking.’ Blocking occurs when a router and/or switch reaches a pointwhere it is unable to perform additional routing and/or switching eventhough it has not yet reached its theoretical maximum throughput, whichgenerally is based on the aggregate maximum speeds of all of its ports.

In various embodiments of the invention, the processor 123 may beoperable to determine information indicating how to handle packet dataand/or about capabilities of one or more communication devices that maybe candidates for handling packets that are being routed through anetwork. The information may comprise various routing parameters, costsand/or marks inserted within packet data. In this regard, theinformation may enable support of user device capabilities, support ofspecified service classes, packet preemption, real time compression,quality measurements, tier bypass and/or power efficient communication.Furthermore, the information may comprise one or more power consumption,bandwidth, memory and/or processing costs associated with communicatingvia a specified device. In this regard, the processor 123 may beoperable to make routing decisions based on the determined information.For example, a route may be chosen for delivery of packet data based ona plurality of factors rather than based on a minimum number of hops,for example. The marks may be referred to as markings and/or tags.

The marks that may be inserted within packet data may enable a networkdevice, for example, the communication device 101, to determine a typeof traffic that is received by the device. The mark may classify and/ordescribe the packet data. The mark data may enable a network device suchas the communication device 101 to determine a type of data withouthaving to perform deep packet inspection. The marks may be standardizedand/or non-standardized, for example, marking techniques may beproprietary. In various embodiments of the invention, the marks may betags, for example, that may be utilized based on an IEEE 802.3 standardand/or an extension and/or variation thereof. A packet data mark maycomprise an Ethertype, for example. Moreover, marking may be placedwithin a packet payload, an IP header, an IP tag and/or an IP payload,for example. In this manner the marking information may be communicatedto network devices.

In an exemplary aspect of the invention, the communication device 101may be operable to communicate information regarding its own routingparameters and/or costs to one or more neighboring communicationdevices. In addition, the communication device 101 may be operable toreceive similar information from one or more of its neighboringcommunication devices and may make decisions about where, when and/orhow to route the various types of traffic based on that information.

In an exemplary embodiment of the invention, the communication device101 may be operable to send multi-party Internet interactive gamingpackets to a specified destination via one or more routes. For example,the communication device 101 may have a packet that is pending delivery.The packet may comprise a mark and/or tag which indicates that adestination end device for the packet has multi-party Internetinteractive gaming capabilities. The communication device 101 may choosea route for communicating the packet that comprises communicationdevices capable of transmitting the gaming packet with the lowestlatency rather than a route that may comprise fewer hops but wouldresult in higher latency. In this regard, the communication device 101may utilize packet preemption, real time compression and/or tier bypassto communicate the gaming packet with a latency low enough to supportthe multi-party interactive Internet gaming application. Moreover, thecommunication device 101 may also utilize shortest path bridging and/oraudio video bridging to route the gaming data with the required latency.In addition to latency considerations, power efficiency may beconsidered along with latency requirements when determining a route forthe gaming packets.

The processor 123 may be operable to determine routing and/or processingcriteria for data that may be pending delivery from the communicationdevice 101. In this regard, the processor 123 may be operable toconsider trade-offs between various routing parameters, costs and/ordesired performance for routing the data via one or more communicationdevices along a communication path. In this manner, a communication paththrough a network may be determined based on one or more of a pluralityof routing criteria, routing parameters and/or costs that may comprise,for example, user device capabilities, service class, packet preemption,real time compression, quality measures, tier bypass, power consumption,shortest path route, audio video bridging, bandwidth, memory andprocessing. The tradeoffs may be determined based on, for example, atype of data being transmitted, a particular class and/or type ofservice being provided, and/or based on user and/or service providerpreference.

FIG. 2 is a block diagram illustrating an exemplary plurality ofcommunication devices that are enabled to route data based on one ormore of routing parameters, costs associated with a device and/or datamark and/or tag information, in accordance with an embodiment of theinvention. Referring to FIG. 2, there is shown a communication system200. The communication system may comprise two communication devices 201a and 201 b and/or a plurality of communication links 212. Thecommunication devices 201 a and/or 201 b may comprise memories 221 aand/or 221 b respectively.

The communication devices 201 a and 201 b may be similar and/orsubstantially the same as the communication device 101 described withrespect to FIG. 1. The communication devices 201 a and 201 b may beoperable to communicate via a plurality of communication links 212. Inan exemplary embodiment of the invention, the plurality of links 212 maybe Ethernet links. In this regard, the plurality of links 212 maycomprise, for example, unshielded twisted pair cables, coaxial cables,fiber optic cables, and/or wireless connections. The memory devices 221a and/or 221 b may be similar and/or substantially the same as thememory 121 described with respect to FIG. 1. The memory devices 221 aand/or 221 b may comprise one or more of tables, databases, and otherdata structures that may comprise the routing parameters, network nodecapabilities, costs associated with routing via the communication device201 a and/or 201 b and/or data received via marks and/or tags withinpacket data that may provide information about how to route the packetdata.

In operation, the communication device 201 a may comprise suitablelogic, circuitry, interfaces and/or code that may be operable todetermine criteria for routing data that may be pending delivery basedon one or more marks and/or tags and/or bits that may be embedded withinthe data. For example, the communication device 201 a may receive datathat may comprise one or more markings and/or tags that may indicate thecriteria for processing and/or routing the data via one or more networknodes to one or more endpoint devices, described with respect to FIG. 3.

In addition, the communication device 201 a may be operable to determinevarious parameters, capabilities and/or costs of one or more networknodes, for example, the communication device 201 b, that may be operableand/or available for routing the data to one or more network nodesand/or endpoint devices. The communication device 201 a may determineand/or select one or more routes over which the data may be communicatedbased on the determined criteria for the data and/or the routingparameters, network node capabilities and/or the costs associated withone or more communication devices, for example the communication device201 b. In various embodiments of the invention, the one or moremarkings, tags and/or bits that may be embedded within the data maycorrespond to various routing parameters, capabilities and/or costs of acommunication device and/or network node. In this regard, the markings,tags and/or bits may indicate how the data may be processed and/orrouted.

The routing parameters, capabilities and/or costs may be communicated tothe communication device 201 a and/or between network nodes via one ormore of a plurality of methods. For example, the routing parameterscapabilities and/or costs associated with the device 201 b and/or othernetwork nodes may be communicated to the communication device 201 aduring auto-negotiation with the communication device 201 a. In anotherexemplary embodiment of the invention, the routing parameters,capabilities and/or costs of the communication device 201 b and/or othernetwork nodes may be communicated utilizing link layer discoveryprotocol (LLDP). In this regard, the communication device 201 a may beoperable to query the device 201 b utilizing simple network managementprotocol (SNMP) for the parameters, capabilities and/or costs stored inthe memory 201 b. Moreover, bridge protocol data units (BPDUs) may bemodified to indicate routing parameters, capabilities and/or costinformation for a network node. Notwithstanding, the invention is notlimited to any specific method of identifying parameters, capabilitiesand/or costs of one or more network nodes and any suitable method may beutilized. For example, proprietary methods and/or standardized methodsmay be utilized.

One or more exemplary routing parameters and/or capabilities of thecommunication devices 201 a, 201 b and/or other network nodes may enablepacket preemption. Packet preemption may allow packets with a greaterneed to be delivered sooner than other packets to be delivered prior tothe other packets. In this regard, prioritization of packets may bebased on, for example, service class and/or latency requirements. Forexample, the communication device 201 a may route data that may haveoriginated from different applications such as voice over Internetprotocol (VOIP), multi-party interactive Internet gaming, email and/orweb browsing. The different applications may have different latencyrequirements for communicating the data with a desired level ofperformance. Data marking, tags and/or information comprised within apacket and/or packet data may indicate a desired latency for the packet.In this regard, the communication device 201 a may schedule transmissionof one or more packets that are pending delivery so that packetsrequiring lower latency are transmitted prior to packets with lessstringent latency requirements. The communication device 201 a mayre-order the schedule to accommodate newly arrived packets requiring lowlatency routing. Alternatively, when the communication device 201 a iscurrently in a process of transmitting a first packet with lessstringent latency requirements and a second packet with more stringentlatency requirements becomes available, the transmission of the firstpacket may be interrupted and the second packet may be transmitted. Oncetransmission of the second packet has completed and/or there are noother packets of lower latency requirements that are suitable totransmit, the communication device 101 may continue to transmit thefirst packet. U.S. Provisional Patent Application Ser. No. 61/228,368,which was filed on Jul. 24, 2009, and U.S. patent application Ser. No.12/604,968, which was filed on Oct. 23, 2009, disclose packetpreemption, and are hereby incorporated herein by reference in theirentirety.

Another exemplary routing parameter and/or capability of thecommunication devices 201 a, 201 b and/or other network nodes may enablereal time compression between two network nodes. In this regard, asending and receiving node may be operable to handle real timecompression wherein the sending node may be operable to reduce thelength of a packet and/or transmit fewer packets to transmit a specifieddata and the receiving node may be operable to decompress the packetdata. For example, real time video compression within a transmittingnetwork node such as the communication device 201 a, may be utilized tocompress video data that may be received by a receiving network nodesuch as the communication device 201 b. In various exemplary embodimentsof the invention, the video data may be reduced by a factor of twoand/or the compression may be lossless and/or near lossless. In thisregard, data communicated via the communication devices 201 a, 201 band/or other network nodes may comprise information regarding how thecommunicated data may be compressed with regard to loss. For example, amark, tag and/or bits comprising the compression information may beinserted within a packet. The tag and/or bits may be inserted by anendpoint device that may have originated the packet and/or by a serviceprovider handling the packet for example. Moreover, other types ofrouted data, for example, text and/or voice may be compressed and/ordecompressed by a pair of nodes handling the routed data.

Power consumption information for one or more network nodes may beutilized to make routing decisions. For example, information regardingpower consumption may comprise how much power a communication deviceconsumes when communicating data at a specified bandwidth. For example,a specified number of Watts and/or Joules utilized for a specifiedtransmitted bits per second may be specified. In this regard, powerconsumption information, for example, Joules per bit for a communicationdevice may be stored within the device and/may be communicated to othercommunication devices that may route data to that device.

In another exemplary embodiment of the invention, the informationregarding power consumption may comprise a current level of power usageby a communication device, for example, indicating a level of powerconsumption at a certain time. The current level of power consumptionmay be communicated to and/or discovered by other communication devices.U.S. Provisional Patent Application Ser. No. 61/228,432, which was filedon Jul. 24, 2009, and U.S. patent application Ser. No. 12/634,211, whichwas filed on Dec. 9, 2009, disclose various aspects for making routingdecisions based on power consumption, and are hereby incorporated hereinby reference in their entirety. Criteria for power consumption and/orbandwidth for communicating specified data may be determined. Forexample, a power per bandwidth criteria may comprise a specified numberof Watts and/or Joules utilized for a specified number of transmittedbits per second. In this regard, information within a packet header, forexample, within a marking and/or a tag and/or a parameter, may indicatepower consumption criteria and/or other criteria for communicating thepacket. In various embodiments of the invention, reserved bits in an OSIlayer two or higher OSI layer header may be utilized to communicate thepower consumption and/or bandwidth criteria, for example.

The communication device 201 a may be operable to consider trade-offsbetween bandwidth and power consumption to determine a best route forthe data pending delivery. A communication path through a network may bedetermined based on various criteria corresponding to data pendingtransmission and/or on power consumption characteristics ofcommunication devices along the communication path. The tradeoff may bedetermined based on, for example, a desired latency, desired bandwidth,service class, performance, shortest path bridging and/or powerconsumption.

FIG. 3A is a block diagram illustrating an exemplary packet comprisingan OSI L2 mark, in accordance with an embodiment of the invention.Referring to FIG. 3A, there is shown a data packet 300 that may comprisea start of a packet header 302, a MAC source address header (MAC SAH)304, a MAC destination address header (MAC DAH) 306, a payload 308, andan end of packet header 310 and a mark 312.

The start of packet header 302 may comprise data that may indicate to areceiving communication device, for example the communication device 201b, where the packet 300 begins. The MAC SAH 304 may comprise data thatmay indicate which communication device is transmitting the packet 300and the MAC DAH 306 may indicate which device is receiving the packet300. The payload 308 may comprise packet data and/or headers for OSIhigher layer processing. The payload 308 may comprise data transmittedfrom an endpoint device that may be stored in the endpoint device and/orgenerated by an application in the endpoint device. For example, thepayload 308 may comprise video conferencing data, multi-party Internetgaming data, VOIP data and/or web browsing data, for example.Accordingly, the payload 308 may require a specified level of latency inorder to realize an acceptable quality of communication. Moreover, thepayload 308 may require a specified class of service based on a serviceor subscriber agreement purchased by a user associated with the payload308. The end of packet 310 may indicate to a receiving device 201 bwhere the packet 300 ends. The mark 312 may comprise bits embeddedwithin the packet 300 and/or may be part of an OSI layer 2 and/or higherOSI layer header. For example, an endpoint device, application softwareon the endpoint device and/or a network node may be operable tooriginate communication of the payload 308 and/or may generate a mark inan OSI layer 2 or higher OSI layer header. In another exemplaryembodiment of the invention, a service provider that may manage and/oroperate the communication devices 201 a and/or 201 b, for example, mayinsert a mark into a packet.

The packet 300 may comprise one or more marks and/or embedded bits thatmay indicate criteria for processing and/or routing the packet 300 viaone or more network nodes, for example, via the communication devices201 a and/or 201 b. In various embodiments of the invention, the one ormore marks, tags and/or embedded bits within the packet 300 maycorrespond to various routing parameters, network node capabilitiesand/or costs associated with a specified communication device and/ornetwork node. In this regard, the mark, tag and/or embedded bits mayindicate how the packet 300 may be processed, prioritized and/or routed.

FIG. 3B is a block diagram illustrating an exemplary packet comprisingan OSI Ethertype mark, in accordance with an embodiment of theinvention. Referring to FIG. 3B, there is shown a data packet 320 thatmay comprise the start of a packet header 302, the MAC source addressheader (MAC SAH) 304, the MAC destination address header (MAC DAH) 306,and the end of packet header 310. In addition, there is shown anEthertype 322, a payload 324, a subtype mark 326 and a payload 328.

The Ethertype 322 field may comprise information that may be utilized toidentify the protocol being transported in the packet, for example, IPv4or IPv6. The protocol indicated by the Ethertype may utilize markswithin the data packet 320 that may specify a type of traffic that thepacket 300 belongs to. The type of traffic may indicate how the packet300 may be processed, prioritized and/or routed. In this regard, anetwork device may look for the marks within the payload 234 when theEthertype 322 field indicates a protocol that utilizes the marks. In anexemplary embodiment of the invention, the network device may beoperable to parse the payload 328 to find the subtype mark 326 that maycomprise the traffic type information.

FIG. 3C is a block diagram illustrating an exemplary packet comprisingan IP mark, in accordance with an embodiment of the invention. Referringto FIG. 3C, there is shown a data packet 330 that may comprise the startof a packet header 302, the MAC source address header (MAC SAH) 304, theMAC destination address header (MAC DAH) 306 and the end of packetheader 310. In addition, there is shown an Ethertype 332 an IP header334, a payload 336, an IP mark 338 and a payload 340.

The Ethertype 332 field may comprise information that may be utilized toidentify the protocol being transported in the packet, for example, IPv4or IPv6. The IP header 334 may comprise information about the packetsuch as an ID and/or version for the packet, source and destinationinformation and/or protocol information. In various embodiments of theinvention, the IP header 334 may comprise a mark to indicate the type oftraffic or content comprised within the packet that may determine howthe packet 300 may be processed, prioritized and/or routed. In otherembodiments of the invention, the mark may be embedded in the IP payload336. For example, a network device that may receive the packet 330 mayparse the IP payload 336 to find the IP Mark 338 that may comprise thetraffic type information.

In operation, one or more packets, for example, the one or more of thepackets 300, 320 and 330 may be generated by an endpoint device(described with respect to FIG. 4). The endpoint device may have acertain capability and/or may host an application that may generate oneor more of the packets 300, 320 and 330. For example, the packets 300,320 and/or 330 may comprise multi-party interactive Internet gaming datathat may require a very low latency in order for the interactive game toadequately communicate high speed input by a plurality of users. Theendpoint device may generate one or more of the marks 312, 326 and/or338 that may indicate the endpoint device multi-party interactiveInternet gaming capability. In this regard, a network node, for example,the communication device 201 a may receive one or more of the packets300, 320 and 330 and may parse the packet and/or may perform packetinspection in order to determine the endpoint device capabilities. Forexample, the communication device 201 a may inspect the mark 312, 326and/or 338 and may determine that the packet 300, 320 and/or 330comprises multi-party interactive Internet gaming capability and/orrequires very low latency communication. Accordingly, the communicationdevice 201 a may determine a path for routing the packet 300, 320 and/or330 based on one or more routing parameters stored within the device.For example, the communication device 201 a may route packets based onshortest path bridging and/or may utilize AVB. Furthermore, thecommunication device 201 a may perform real time compression on the oneor more packets 300, 320 and 330 data that may reduce the packet size bya factor of two, for example. The communication device 201 a may alsopreempt one or more other packets that may be pending delivery by thedevice 201 so that the multi-party interactive Internet gaming data fromthe packets 300, 320 and/or 330 may be communicated to the communicationdevice 201 b, for example, with very low latency.

FIG. 4 is a block diagram illustrating an exemplary data delivery routecomprising endpoint devices and a plurality of network nodes which maybe determined based on routing parameters, costs associated with adevice and/or marked and/or tagged packet data, in accordance with anembodiment of the invention. Referring to FIG. 4, there is shown, anetwork 400 comprising two endpoint devices 405 a and 405 b and sevennetwork nodes 401 a, 401 b, . . . , 401 g. In addition, the network 400comprises network paths 411 and 413.

The two endpoint devices 405 a and/or 405 b may comprise suitable logic,circuitry, interfaces and/or code that may be operable to communicatevia the network 400 wherein packet markings and/or tags, routingparameters and/or costs may be utilized to meet various routing and/orcommunication criteria. Moreover, the endpoint devices 405 a and/or 405b may be operable to communicate via the network 400 utilizing AVB. Inan embodiment of the invention, the endpoint device 405 a may be aserver operated by a service provider and the endpoint device 405 b maybe a user device, for example, a laptop, however, the invention is notso limited. In this regard, the endpoint devices 405 a and/or 405 b maybe any suitable communication device, for example, the endpoint devices405 a and/or 405 b may comprise a mobile phone, a smart phone, a mediaplayer, a gaming device, a location device, a video server, a serviceprovider head-end and/or a set-top-box. In various embodiments of theinvention, the endpoint devices 405 a and 405 b may be the same and/orsimilar devices, for example, two laptops.

The network nodes 401 a, 401 b, . . . , 401 g may comprise suitablelogic, circuitry, interfaces and/or code that may be operable totransmit and/or receive data via the network 400. For example, thenetwork nodes 401 a, 401 b, . . . , 401 g may comprise a bridge, aswitch and/or a router. The network nodes 401 a, 401 b, . . . , 401 gmay be similar and/or substantially the same as the communicationdevices 101, 201 a and/or 201 b, for example. In this regard, one ormore of the network nodes 401 a, 401 b, . . . , 401 g may comprise oneor more routing parameters and/or stored network node capabilities thatmay be utilized for routing data via the network 400 as described withrespect to, for example FIG. 1, FIG. 2 and/or FIG. 3. Furthermore, oneor more costs may be associated with one or more of the network nodes401 a, 401 b, . . . , 401 g as described with respect to, for exampleFIG. 1, FIG. 2 and/or FIG. 3. The network nodes 401 a, 401 b, . . . ,401 g and/or the endpoint devices 405 a and/or 405 b may be operable tocommunicate at any suitable standard and/or non-standard speed, mayoperate based on any suitable standard and/or non-standard technologyand/or may communicate over any suitable medium, for example, copper,optical, wireless and/or backplane technologies, and/or may utilize andsuitable connection type, for example, PON. For example, the network 400may be a heterogeneous wired and/or wireless network. Moreover, thenetwork 400 may be comprise any suitable deployment type, for example,the network 400 may comprise a service provider network, a contentprovider network, a consumer network, an access network, a distributionnetwork, an enterprise network, a data center and/or a wireless backhaulnetwork.

The network path 411 may comprise a least cost path and/or a lowestlatency path between the end devices 405 a and 405 b. The network path413 may comprise the shortest path between the endpoint devices 405 aand 405 b. In various embodiments of the invention, there may be aplurality of paths through a network where some nodes within the networkmay be bypassed, for example, based on routing parameters, costsassociated with a device and/or marked and/or tagged packet data, forexample.

In operation, a user of the endpoint device 405 b may have a serviceagreement with a service provider for communicating data based on aspecified service class. For example, the service class may specify aminimum bandwidth and/or latency that a user of the endpoint device 405b may be entitled to for a specified type of data. In an exemplaryembodiment of the invention, the endpoint device 405 a may be a videoserver that may stream video to the endpoint device 405 b via thenetwork 400. The endpoint device 405 b may be a set top box, forexample. The endpoint device 405 a may insert one or more markingsand/or tags within one or more packets of the video stream to indicatethe user's specified service class to network nodes that may handle thevideo stream. The network nodes 401 a, 401 b, . . . , 401 f may comprisevarious routing parameters, network node capabilities and/or associatedcosts that may enable the network nodes 401 a, 401 b, . . . , 401 f tohandle and/or route a video stream from the endpoint device 405 a to theendpoint device 405 b in accordance with the user's specified serviceclass. The network node 401 g may have limited routing parameters and/orlimited network node capabilities. Moreover, the network node 401 g mayhave one or more associated costs with regard to bandwidth, memoryand/or processing, for example, which may indicate that the network node401 g may not be able to handle the video stream data at the user'sspecified service class. In this regard, the video stream communicatedfrom the endpoint device 405 a to the endpoint device 405 b mayoptimally be routed via the network nodes 401 a, 401 b, 401 c, 401 eand/or 401 f. In this manner, the video stream may be communicated inaccordance with the user's specified service class even though anotherroute via the network nodes 401 a, 401 g and/or 401 f may comprise afewer number of hops.

In another exemplary embodiment of the invention, various routingparameters and/or capabilities of the network nodes 401 a, 401 b, . . ., 401 f may enable quality measurements to be taken within the networknodes. The quality measurements may be utilized to improve routing ofdata between the endpoint devices 405 a and/or 405 b. The qualitymeasurements may be taken for specified data and/or a specified packethandled by the network nodes 401 a, 401 b, . . . , 401 f. Moreover, thequality measurements may be utilized to report performance problems toan endpoint device, a user and/or service provider. In this regard, thenetwork node 401 a, 401 b, . . . , 401 f may be operable to receive datafrom the endpoint device 405 a, may measure various performance metrics,and may send the measurements back to the endpoint device 405 a. Forexample, packet retries, latency, data rate, packet error rate and/orduration of errors may be measured and/or reported back to the endpointdevice 401 a.

In another embodiment of the invention, quality measurements may betaken at an endpoint device that may be receiving and/or rendering thedata and the quality measurements may be reported back to an originatingendpoint device and/or a service provider for example. In this regard,the receiving device, for example, the endpoint device 405 b may senddata comprising various performance measurements such as dB ratios,signal to noise ratios and/or packet errors to the endpoint device 405 aand/or a service provider. The endpoint devices 405 a and/or 405 band/or the service provider may indicate that quality problems may beoccurring in the network 400 and/or may provide information to thenetwork nodes 401 a, 401 b, . . . , 401 f. The provided information mayenable improvement in network performance. The information may becommunicated to the network nodes 401 a, 401 b, . . . , 401 f byinserting marks, tags and/or information within data that may be routedvia the network 400. For example, a user of the endpoint device 405 bmay subscribe to and/or purchase a service agreement from a serviceprovider for a specified class of service and/or for a specifiedbandwidth, for example. The user device may measure the quality ofservice it receives and may report it to the service provider. Based onthe user's service agreement and/or the quality measurements, theservice provider may mark, tag and/or otherwise indicate within packetsbeing sent to the endpoint device 405 b how to handle and/or route thedata according to the service agreement. Routing parameters withinnetwork nodes 401 a, 401 b, . . . , 401 f may enable the network nodesto handle the data according to the specified quality of service.

In various embodiments of the invention, the network nodes 401 a, 401 b,. . . , 401 f may comprise a heterogeneous mix of network devices. Forexample, a network may be undergoing a phased upgrade where at aninstant in time, a portion of network devices are upgraded or new and aportion of legacy devices have not yet been upgraded. In this regard,the upgraded network devices may be operable to detect data markings ortags and operate according to information provided by the markingsand/or tags while the legacy network devices are not operable to utilizethe marking and/or tag information. The markings and or tags may beinserted into packets in such a way that operation of the legacy networkdevices is not disrupted by the inserted information.

In an exemplary embodiment of the invention, devices within the network400, for example, network devices at the edge of a bounded network suchas the network node 401 f, may be operable to insert markings and/ortags within a packet. This might occur, for example, when an endpointdevice does not have marking capability or for example, when a serviceprovider is operable to marks packets.

FIG. 5 is a flow chart illustrating exemplary steps for routing databased on one or more of routing parameters, costs associated with adevice and/or data marking and/or tag information, in accordance with anembodiment of the invention. Step 501, is a start step. In step 503,based on a mark within a packet that may be pending delivery, determinea traffic type for the packet. For example, for the packet 300 that maybe communicated from the device 201 a, determine a traffic type based onthe mark 312 information within the packet 300. In step 505, one or moreroutes may be determined for communication of the packet 300 via one ormore communication devices based on one or more of the determinedcriteria, routing parameters and/or costs associated with the one ormore communication devices. In step 507, one or more of the determinedroutes for communicating the packet 300 may be selected based on thedetermined criteria. In step 509, the packet 300 may be communicated viathe selected one or more determined routes, for example, to thecommunication device 201 b. Step 511, is the end of exemplary steps.

In an embodiment of the invention, one or more processors and/orcircuits in one or more of a plurality communication devices, forexample, 201 a and/or 201 b, and/or 401 a, 401 b, . . . , 401 g, maydetermine one or more routes over which packets, for example, the packet300, may be communicated. The packets may be communicated between afirst communication device, for example 201 a of the plurality ofcommunication devices and a second communication device, for example,201 b of the plurality of communication devices. Furthermore, thepackets may be communicated based on one or more of corresponding marksand/or tags, for example, the mark and/or tag 312 within the packets,routing parameters and/or costs that may be associated with utilizingthe determined routes. At least one determined route may be selected forcommunicating the packets between the first communication device and thesecond communication device and the packets may be communicated via theat least one selected route. The parameters may comprise information forone or more of service class capabilities, real time compressioncapabilities, packet preemption capabilities, quality measurementcapabilities, tier bypass capabilities and power usage, for example. Theone or more costs may comprise information for one or more of capacity,efficiency and/or performance of one or more of power usage, bandwidth,memory and processing, for example. Moreover, the one or morecorresponding marks and/or tags may comprise information for one or moreof user device capabilities, service class, quality measurements,latency requirements and power usage requirements, for example. Thecorresponding marks and/or tags, for example, the tag 312, may beinserted within the packets, for example, the packet 300, by one or moreof an endpoint device, for example the endpoint device 405 a, a softwareapplication and/or a service provider.

One or more routes, for example, the route 411 over which the packetsmay be communicated may be determined and/or selected based on one ormore of shortest path bridging and audio video bridging. Additionally,one or more routes, for example the route 411, over which the packetsmay be communicated may be selected based on the one or morecorresponding marks and/or tags within the packets, the routingparameters and/or the costs. The routing parameters and/or the costs maybe received and/or discovered from the plurality of communicationdevices, for example, the communication devices 201 b. The packets, forexample, the packet 300 and/or the corresponding marks and/or tags, forexample, the mark and/or tag 312, may be parsed and/or inspected. One ormore costs may be based on one or more of the routing parameters. Inthis manner, routing of packet data via one or more network nodes may bebased on marks and/or tags within the data, routing parameters and/orcosts associated with the one or more network nodes.

Another embodiment of the invention may provide a machine and/orcomputer readable storage and/or medium, having stored thereon, amachine code and/or a computer program having at least one code sectionexecutable by a machine and/or a computer, thereby causing the machineand/or computer to perform the steps as described herein for dynamicrouting and/or switching in a network.

Accordingly, the present invention may be realized in hardware,software, or a combination of hardware and software. The presentinvention may be realized in a centralized fashion in at least onecomputer system or in a distributed fashion where different elements maybe spread across several interconnected computer systems. Any kind ofcomputer system or other apparatus adapted for carrying out the methodsdescribed herein is suited. A typical combination of hardware andsoftware may be a general-purpose computer system with a computerprogram that, when being loaded and executed, controls the computersystem such that it carries out the methods described herein.

The present invention may also be embedded in a computer programproduct, which comprises all the features enabling the implementation ofthe methods described herein, and which when loaded in a computer systemis able to carry out these methods. Computer program in the presentcontext means any expression, in any language, code or notation, of aset of instructions intended to cause a system having an informationprocessing capability to perform a particular function either directlyor after either or both of the following: a) conversion to anotherlanguage, code or notation; b) reproduction in a different materialform.

While the present invention has been described with reference to certainembodiments, it will be understood by those skilled in the art thatvarious changes may be made and equivalents may be substituted withoutdeparting from the scope of the present invention. In addition, manymodifications may be made to adapt a particular situation or material tothe teachings of the present invention without departing from its scope.Therefore, it is intended that the present invention not be limited tothe particular embodiment disclosed, but that the present invention willinclude all embodiments falling within the scope of the appended claims.

What is claimed is:
 1. A method comprising: at a network node of acommunication network, receiving a packet originating with an endpointdevice for communication to a video processing device, the packetincluding data defining video information for playback at the videoprocessing device by a user; parsing the packet to identify markinformation inserted in the packet by the endpoint device to indicate tonodes of the communication network including the network node a serviceclass associated with the video processing device or the user; using themark information, retrieving stored criteria for routing the packet fromthe network node in accordance with the service class; and using thecriteria, selecting a route from the network node to the videoprocessing device.
 2. The method of claim 1 further comprising: storingat the network node routing parameters for packets communicated at thenetwork node, including the packet; and retrieving the stored routingparameters for the packet using the mark information inserted in thepacket.
 3. The method of claim 1 wherein parsing the packet to identifymark information comprises identifying a service class specifying aminimum bandwidth for communicating the packet.
 4. The method of claim 1wherein parsing the packet to identify mark information comprisesidentifying a service class specifying a latency for communicating thepacket.
 5. The method of claim 1 wherein retrieving stored criteria forrouting the packet comprises retrieving node capabilities for thenetwork node and wherein selecting a route from the network nodecomprises selecting a path through the communication network thatmaintains the service class associated with the video processing deviceor the user in accordance with the node capabilities.
 6. The method ofclaim 1 wherein retrieving stored criteria for routing the packetcomprises retrieving node costs for the network node and whereinselecting a route from the network node comprises selecting a paththrough the communication network that maintains the service classassociated with the video processing device or the user in accordancewith the node costs.
 7. The method of claim 1 wherein selecting a routefrom the network node to the video processing device comprisesidentifying a route through the communication suitable to communicatethe data defining video information to the video processing device inaccordance with the service class associated with the video processingdevice or the user even though another route via the communicationnetwork includes fewer hops.
 8. A method comprising: at a networkcommunication device configured for communication over a communicationnetwork with a user device, receiving over the communication networkfrom the user device, data defining performance measurements at the userdevice; and using the data, defining performance measurements,formatting a data packet for transmission via one or more communicationnodes over the communication network to the user device, including:inserting in the data packet, mark information defining how to handle orroute subsequent packets to improve subsequent performance measurementsat the user device.
 9. The method of claim 8 further comprising: at thenetwork communication device, retrieving a user's service agreement;identifying variations in the data defining performance measurementsfrom the user's service agreement; and formatting the data packet basedon the service agreement and the data defining performance measurementsto reduce the variations.
 10. The method of claim 8 further comprising:at the network communication device, receiving from a service providerdevice a data packet intended for the user device; and parsing the datapacket to identify mark information inserted in the packet by theservice provider device to indicate to nodes of the communicationnetwork including the network communication device how to handle orroute the data packet according to a user's service agreement with aservice provider.
 11. The method of claim 10 further comprising: at thenetwork communication device, using the mark information, retrievingrouting parameters defining how to handle or route the data packetaccording to the user's service agreement.
 12. The method of claim 11wherein retrieving the routing parameters comprises retrieving therouting parameters from storage at the network communication device. 13.The method of claim 8 wherein receiving over the communication networkfrom the user device data defining performance measurements at the userdevice comprises receiving data defining one or more signal to noiseratio or one or more packet error indication detected at the userdevice.
 14. A method comprising: at a communication device configuredfor data communication with a communication network, formatting a datapacket, including: inserting a mark in the data packet, the mark beingindependent of other content in the data packet and includinginformation about routing criteria for the packet for routing the packetby network nodes of the communication network, the mark for use by thenetwork nodes for processing the routing criteria by using informationat the network nodes according to information in the mark; andcommunicating the packet to a first network node for routing to anetwork destination.
 15. The method of claim 14 wherein inserting a markin the data packet comprises: inserting in the data packet routingparameter data defining one or more routing parameters for the networknodes of the communication network; and inserting the routing parameterdata at a designated location in the data packet.
 16. The method ofclaim 15 wherein inserting the routing parameter data at a designatedlocation in the data packet comprises inserting the routing parameterdata in a payload of the data packet.
 17. The method of claim 14 whereininserting a mark in the data packet comprises inserting in a designatedlocation of the data packet data indicating to the network nodes how thedata packet should be processed, prioritized or routed.
 18. The methodof claim 14 wherein inserting a mark in the data packet comprisesinserting the mark in an internet protocol (IP) header of the datapacket.
 19. The method of claim 14 wherein inserting a mark in the datapacket comprises inserting the mark in an internet protocol (IP) payloadof the data packet.
 20. The method of claim 19 wherein inserting themark in an internet protocol (IP) header of the data packet comprisesinserting in the IP header traffic type information for the data packet.